זימנו אותי לראיון במגדל העמק מול ראש צוות באלגוריתמים. ראיינו אותי ראש הצוות ועוד מפתח אלגוריתמים מצוות אחר. לאחר הראיון שלחו אותי לראיון מול מנהל תחום האלגוריתמים ואחריו לראיון מול אחת מהמגייסות או כח אדם. כשבועיים לאחר מכן זומנתי לראיון נוסף מול מנהל תחום ההנדסה בחברה.
שאלות מתוך הראיון
בכל הראיונות המקצועיים ביקשו שאתאר פרויקטים שעבדתי עליהם במהלך הלימודים ובעבודתי הנוכחית.
בכח אדם ביקשו שאתאר קושי שהיה לי בחיים או בעבודה והתגברתי עליו ושאלות כמו למה עוזב מקום נוכחי ומה הציפיות שלי מkla
טלפוני: מה יתרונות וחיסרונות של תכנות מרובה תהליכים?
מקצועי:
1. שאלות על wpf
2. שאלת דיזיין: בהנתן קובץ xml המתאר מערכת שערים לוגיים, תכתוב מטודה המוסיפה שער לוגי חדש ומטודה אחרת המחזירה ערך לוגי בהנתן ערכים לוגיים בכניסה
תשובות
הוסף תשובה
|
לצפיה בתשובות
יולי 2017
זאת שאלה פשוטה, צריך לקרוא אותה בעיון ולענות רק על מה ששואלים
הראיון הראשון הוא ראיון טלפוני, שערך כחצי שעה.
הראיון השני הוא ראיון פרונטלי במחלקת התכנה בבנין החברה במגדל העמק.
*מאחר והאתר מגביל את גודל הטקסט ל1000 תווים, אז אפרסם את השאלות בחלקים. זה החלק השני.
שאלות מתוך הראיון
היו שני מראיינים בראיון. תחילה ביקשו שאסביר להם על הפרוייקט שעשיתי ואסרטט על דף את הדיזיין קלאס (OOD). תוך כדי שאלו שאלות על הסרטוט והפרוייקט.
אחר כך נתנו לי דף עם הסבר על Logic Array. בדף היה מתואר שהקלט הוא קובץ XML, שיש מחלקה נתונה שעושה לו פיענוח (Parsing), כאשר בכל שורה שבקובץ יש את שם אחד מהשערים AND, OR, XOR, NOT ומיד אחריו את מספר הכניסות אל השער. כמו כן, יש שני מתודות: Connect, CalOutput. Connect מחברת כניסה של שער אל תוך השער עצמו (אם זה יציאה משער אחר, או ביט בודד של 0 / 1). CalOutput מחשבת את התוצאה של השער.
יש לסרטט דיזיין קלאס של המערכת.
3. שאלה על המכונה:
ישנה דיסקית, המחולקת לריבועים קטנים (בקצה הדיסקית זה לא ריבועים מין הסתם ויש להתעלם מהם), והמכונה עושה 3 פעולות: MOVE, FOCUS, GRAB. כלומר המכונה זזה מריבוע לריבוע (באופן של שורה - שורה), עושה זום על הריבוע ומצלמת תמונה. על כל תמונה שהיא מצלמת יש לבצע חישובים, נקרא להם CALC. השאלה היתה איך ניתן לעבור על הדיסקית ולנתח את כולה בצורה היעילה והמהירה ביותר.
תשובות
הוסף תשובה
|
לצפיה בתשובות
יוני 2017
תשובה לשאלה על המכונה:
את הפעולות הפיזיות לא ניתן לחלק לעבודה במקביל כי יש רק זרוע אחת עם מצלמה, לכן שלושת הפעולות של המכונה יעשו בפונקציה הראשית (Main thread). מה שכן, אפשר לחלק את הניתוכים (חישובים) על כל תמונה: כל תמונה תשלח לתהליכון (thread) חדש, שיבצע עליה את החישובים הנדרשים - CALC. בנוסף ירוץ תהליכון אשר יאתר תהליכונים שסיימו את עבודתם, ויצוות אותם לתמונות חדשות המגיעות מהזרוע - זה כדי לטפל במקרה שתגמר המכסה של התהליכונים (בד"כ זה 32,072 במערכת של 64 ביט).
הראיון הראשון הוא ראיון טלפוני, שערך כחצי שעה.
הראיון השני הוא ראיון פרונטלי במחלקת התכנה בבנין החברה במגדל העמק.
*מאחר והאתר מגביל את גודל הטקסט ל1000 תווים, אז אפרסם את השאלות בחלקים. זה החלק הראשון.
שאלות מתוך הראיון
ראיון טלפוני:
1. מה ההבדל בין הכרזה של private, protected, public?
2. מה זה מחלקה אבסטרקטית?
3. איך מממשים מתודה אבסטרקטית ב++C?
4. מה זה מתודה וירטואלית?
5. למה צריך להגדיר את הdestructor כוירטואלי ב++C?
6. מה זה מחלקה סטטית?
7. מה זה Singleton Pattern?
8. מה ההבדל בין מחלקה סטטית ל-Singleton Pattern?
9. איך מממשים Singleton?
10. איך אפשר להגן מSingleton מפני פנייה של הרבה threads?
11. מה זה mutex?
12. מה זה deadlock?
13. מה ההבדל בין תהליך לתהליכון (thread vs. process)? לציין גם את ההבדל בזיכרון.
14. יש מערך דו מיימדי(i - שורות, ח - עמודות) באיזו דרך כדאי לעבור על המערך?
15. מה ההבדל בין אפליקציה של 32 ביט לבין אפליקציה של 64 ביט מבחינת זיכרון?
תשובות
הוסף תשובה
|
לצפיה בתשובות
יוני 2017
תשובות חלקיות לראיון טלפוני לפי מספר שאלה:
5. אם הדיסטרקטור לא יוגדר כוירטואלי, תהיה שגיאה של undefined behavior, כי מחיקת האובייקט תהיה סטטית, למרות שהיא צריכה להיות דינמית.
13. process (תהליך)
הוא יחידת הרצה והקצאה, כלומר מערכת ההפעלה מקצה מרחב זכרון. ברמת הprocess כל יחידה כזו היא עצמאית ויצירת קשר בין תהליכים היא יחסית יקרה.
thread (תהליכון)
כל התהליכונים באותו תהליך חולקים בינהם את המשאבים - מה שמאפשר קישוריות בצורה פשוטה אבל גם יוצר אתגרים בסנכרון.
14.
קודם for i ואז for j כי הזיכרון כתוב בשורות ב-cache, וכך יהיו יותר cache hits.
15. מערכות הפעלה בתצורה של 32 סיביות יכולות לגשת לזיכרון פיזי (RAM) של עד 4GB.
במערכות בתצורה של 64 סיביות לעומת זאת, ניתן לבצע שימוש עד 8GB או אפילו 16GB בגרסת Home, אבל בגירסאות Professional and Ultimate אפשר להשתמש עד 192GB של זיכרון RAM.